2020-2021 Sunseeker Telemetry and Lighting System
flashctl_ex1_writeToInfoB.c
Go to the documentation of this file.
1
/* --COPYRIGHT--,BSD
2
* Copyright (c) 2017, Texas Instruments Incorporated
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* * Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* * Neither the name of Texas Instruments Incorporated nor the names of
17
* its contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
* --/COPYRIGHT--*/
32
//*****************************************************************************
55
//********************************************************************************
56
#include "
driverlib.h
"
57
58
//*****************************************************************************
59
//
60
//INFOB address in flash into which calibration data would be written
61
//
62
//*****************************************************************************
63
#define INFOB_START (0x1900)
64
65
//*****************************************************************************
66
//
67
//Dummy char array of 'calibration data' - to be stored in flash
68
//
69
//*****************************************************************************
70
uint8_t
calibration_data_char
[16] = {0x00,
71
0x01,
72
0x02,
73
0x03,
74
0x04,
75
0x05,
76
0x06,
77
0x07,
78
0x08,
79
0x09,
80
0x10,
81
0x11,
82
0x12,
83
0x13,
84
0x14,
85
0x15};
86
//*****************************************************************************
87
//
88
//Dummy int array of 'calibration data' - to be stored in flash
89
//
90
//*****************************************************************************
91
uint16_t
calibration_data_int
[8] = {0x1617,
92
0x1819,
93
0x2021,
94
0x2223,
95
0x2425,
96
0x2627,
97
0x2829,
98
0x3031};
99
//*****************************************************************************
100
//
101
//Dummy long array of 'calibration data' - to be stored in flash
102
//
103
//*****************************************************************************
104
uint32_t
calibration_data_long
[4] = {0x35343332,
105
0x39383736,
106
0x43424140,
107
0x47464544};
108
109
void
main
(
void
)
110
{
111
uint16_t
status
;
112
113
WDT_A_hold(WDT_A_BASE);
114
115
//Set P1.0 to output direction
116
GPIO_setAsOutputPin(
117
GPIO_PORT_P1,
118
GPIO_PIN0
119
);
120
121
//Write calibration data to INFOB
122
123
do
124
{
125
//Erase INFOB
126
FlashCtl_eraseSegment((uint8_t *)
INFOB_START
);
127
status
= FlashCtl_performEraseCheck((uint8_t *)
INFOB_START
,
128
128
129
);
130
}
while
(
status
==
STATUS_FAIL
);
131
132
//Write calibration data to INFOB
133
FlashCtl_write8(
calibration_data_char
,
134
(uint8_t *)
INFOB_START
,
135
16
136
);
137
FlashCtl_write16(
calibration_data_int
,
138
(uint16_t *)(
INFOB_START
+ 16),
139
8
140
);
141
FlashCtl_write32(
calibration_data_long
,
142
(uint32_t *)(
INFOB_START
+ 32),
143
4
144
);
145
FlashCtl_fillMemory32(0xBEEFBEEF,
146
(uint32_t *)(
INFOB_START
+ 48),
147
(128 - 48) >> 2
148
);
149
150
while
(1)
151
{
152
//Toggle P1.0
153
GPIO_toggleOutputOnPin(
154
GPIO_PORT_P1,
155
GPIO_PIN0
156
);
157
158
//Delay
159
__delay_cycles
(1000000);
160
}
161
}
driverlib.h
INFOB_START
#define INFOB_START
Definition:
flashctl_ex1_writeToInfoB.c:63
calibration_data_long
uint32_t calibration_data_long[4]
Definition:
flashctl_ex1_writeToInfoB.c:104
main
void main(void)
Definition:
flashctl_ex1_writeToInfoB.c:109
calibration_data_char
uint8_t calibration_data_char[16]
Definition:
flashctl_ex1_writeToInfoB.c:70
calibration_data_int
uint16_t calibration_data_int[8]
Definition:
flashctl_ex1_writeToInfoB.c:91
STATUS_FAIL
#define STATUS_FAIL
Definition:
hw_memmap.h:23
__delay_cycles
__delay_cycles(500000)
status
uint16_t status
Definition:
pmm_ex1_vcore3.c:60
Resources
Software
msp430_driverlib_2_91_13_01
examples
MSP430F5xx_6xx
flashctl
flashctl_ex1_writeToInfoB.c
Generated on Fri Apr 9 2021 22:49:39 for 2020-2021 Sunseeker Telemetry and Lighting System by
1.9.1